home *** CD-ROM | disk | FTP | other *** search
/ Gamers Delight 2 / Gamers Delight 2.iso / Aminet / game / gag / FearWin.lha / FearWin.mod < prev   
Text File  |  1994-10-06  |  1KB  |  67 lines

  1. MODULE FearWin;
  2.  
  3. IMPORT
  4.        I:Intuition,
  5.        d:Dos,
  6.        Break,
  7.        NoGuru,
  8.        y:SYSTEM,
  9.        io;
  10.  
  11. VAR
  12.        scr:I.ScreenPtr;
  13.        win:I.WindowPtr;
  14.  
  15. PROCEDURE DoWin1(win:I.WindowPtr);
  16. VAR sw,sh,ww,wh,wx,wy,nx,ny,tx,ty,mx,my:LONGINT;
  17.     ds,dk:LONGINT;
  18. BEGIN;
  19. ww:=win.width;wh:=win.height;
  20. mx:=win.wScreen.mouseX;
  21. my:=win.wScreen.mouseY;
  22. wx:=win.leftEdge;
  23. wy:=win.topEdge;
  24. IF (mx>wx)AND(mx<wx+ww)AND(my>wy)AND(my<wy+wh) THEN
  25. sw:=win.wScreen.width;
  26. sh:=win.wScreen.height;
  27.  IF (sw*3>ww*4)OR(sh*3>wh*4) THEN
  28.   ww:=ww DIV 2;
  29.   wh:=wh DIV 2;
  30.   wx:=win.leftEdge+ww;
  31.   wy:=win.topEdge+wh;
  32.   nx:=0;ny:=0;dk:=0;
  33.   tx:=ww+2;ty:=wh+2;ds:=(tx-mx)*(tx-mx)+(ty-my)*(ty-my);
  34.   IF ds>dk THEN nx:=tx;ny:=ty;dk:=ds;END;
  35.   tx:=sw-ww-2;ty:=wh+2;ds:=(tx-mx)*(tx-mx)+(ty-my)*(ty-my);
  36.   IF ds>dk THEN nx:=tx;ny:=ty;dk:=ds;END;
  37.   tx:=ww+2;ty:=sh-wh-2;ds:=(tx-mx)*(tx-mx)+(ty-my)*(ty-my);
  38.   IF ds>dk THEN nx:=tx;ny:=ty;dk:=ds;END;
  39.   tx:=sw-ww-2;ty:=sh-wh-2;ds:=(tx-mx)*(tx-mx)+(ty-my)*(ty-my);
  40.   IF ds>dk THEN nx:=tx;ny:=ty;dk:=ds;END;
  41.   I.MoveWindow(win,nx-wx,ny-wy);
  42.  END;
  43. END;
  44. END DoWin1;
  45.  
  46. PROCEDURE DoScreen;
  47. VAR win:I.WindowPtr;
  48. BEGIN;
  49. win:=scr.firstWindow;
  50. REPEAT;
  51.  DoWin1(win);
  52.  win:=win.nextWindow;
  53. UNTIL win=NIL;
  54. END DoScreen;
  55.  
  56. VAR n:INTEGER;
  57. BEGIN;
  58. scr:=I.LockPubScreen(NIL);
  59. REPEAT;
  60. DoScreen;
  61. d.Delay(10);
  62. UNTIL FALSE;
  63. CLOSE
  64. I.UnlockPubScreen(NIL,scr);
  65. END FearWin.
  66.  
  67.